package com.example.innovate.domain;

import java.util.ArrayList;
import java.util.List;

public class SigningRateDOExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public SigningRateDOExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andSiIdIsNull() {
            addCriterion("si_id is null");
            return (Criteria) this;
        }

        public Criteria andSiIdIsNotNull() {
            addCriterion("si_id is not null");
            return (Criteria) this;
        }

        public Criteria andSiIdEqualTo(Integer value) {
            addCriterion("si_id =", value, "siId");
            return (Criteria) this;
        }

        public Criteria andSiIdNotEqualTo(Integer value) {
            addCriterion("si_id <>", value, "siId");
            return (Criteria) this;
        }

        public Criteria andSiIdGreaterThan(Integer value) {
            addCriterion("si_id >", value, "siId");
            return (Criteria) this;
        }

        public Criteria andSiIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("si_id >=", value, "siId");
            return (Criteria) this;
        }

        public Criteria andSiIdLessThan(Integer value) {
            addCriterion("si_id <", value, "siId");
            return (Criteria) this;
        }

        public Criteria andSiIdLessThanOrEqualTo(Integer value) {
            addCriterion("si_id <=", value, "siId");
            return (Criteria) this;
        }

        public Criteria andSiIdIn(List<Integer> values) {
            addCriterion("si_id in", values, "siId");
            return (Criteria) this;
        }

        public Criteria andSiIdNotIn(List<Integer> values) {
            addCriterion("si_id not in", values, "siId");
            return (Criteria) this;
        }

        public Criteria andSiIdBetween(Integer value1, Integer value2) {
            addCriterion("si_id between", value1, value2, "siId");
            return (Criteria) this;
        }

        public Criteria andSiIdNotBetween(Integer value1, Integer value2) {
            addCriterion("si_id not between", value1, value2, "siId");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassIsNull() {
            addCriterion("si_create_class is null");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassIsNotNull() {
            addCriterion("si_create_class is not null");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassEqualTo(String value) {
            addCriterion("si_create_class =", value, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassNotEqualTo(String value) {
            addCriterion("si_create_class <>", value, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassGreaterThan(String value) {
            addCriterion("si_create_class >", value, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassGreaterThanOrEqualTo(String value) {
            addCriterion("si_create_class >=", value, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassLessThan(String value) {
            addCriterion("si_create_class <", value, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassLessThanOrEqualTo(String value) {
            addCriterion("si_create_class <=", value, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassLike(String value) {
            addCriterion("si_create_class like", value, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassNotLike(String value) {
            addCriterion("si_create_class not like", value, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassIn(List<String> values) {
            addCriterion("si_create_class in", values, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassNotIn(List<String> values) {
            addCriterion("si_create_class not in", values, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassBetween(String value1, String value2) {
            addCriterion("si_create_class between", value1, value2, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiCreateClassNotBetween(String value1, String value2) {
            addCriterion("si_create_class not between", value1, value2, "siCreateClass");
            return (Criteria) this;
        }

        public Criteria andSiStateIsNull() {
            addCriterion("si_state is null");
            return (Criteria) this;
        }

        public Criteria andSiStateIsNotNull() {
            addCriterion("si_state is not null");
            return (Criteria) this;
        }

        public Criteria andSiStateEqualTo(String value) {
            addCriterion("si_state =", value, "siState");
            return (Criteria) this;
        }

        public Criteria andSiStateNotEqualTo(String value) {
            addCriterion("si_state <>", value, "siState");
            return (Criteria) this;
        }

        public Criteria andSiStateGreaterThan(String value) {
            addCriterion("si_state >", value, "siState");
            return (Criteria) this;
        }

        public Criteria andSiStateGreaterThanOrEqualTo(String value) {
            addCriterion("si_state >=", value, "siState");
            return (Criteria) this;
        }

        public Criteria andSiStateLessThan(String value) {
            addCriterion("si_state <", value, "siState");
            return (Criteria) this;
        }

        public Criteria andSiStateLessThanOrEqualTo(String value) {
            addCriterion("si_state <=", value, "siState");
            return (Criteria) this;
        }

        public Criteria andSiStateLike(String value) {
            addCriterion("si_state like", value, "siState");
            return (Criteria) this;
        }

        public Criteria andSiStateNotLike(String value) {
            addCriterion("si_state not like", value, "siState");
            return (Criteria) this;
        }

        public Criteria andSiStateIn(List<String> values) {
            addCriterion("si_state in", values, "siState");
            return (Criteria) this;
        }

        public Criteria andSiStateNotIn(List<String> values) {
            addCriterion("si_state not in", values, "siState");
            return (Criteria) this;
        }

        public Criteria andSiStateBetween(String value1, String value2) {
            addCriterion("si_state between", value1, value2, "siState");
            return (Criteria) this;
        }

        public Criteria andSiStateNotBetween(String value1, String value2) {
            addCriterion("si_state not between", value1, value2, "siState");
            return (Criteria) this;
        }

        public Criteria andSiSignIsNull() {
            addCriterion("si_sign is null");
            return (Criteria) this;
        }

        public Criteria andSiSignIsNotNull() {
            addCriterion("si_sign is not null");
            return (Criteria) this;
        }

        public Criteria andSiSignEqualTo(String value) {
            addCriterion("si_sign =", value, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiSignNotEqualTo(String value) {
            addCriterion("si_sign <>", value, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiSignGreaterThan(String value) {
            addCriterion("si_sign >", value, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiSignGreaterThanOrEqualTo(String value) {
            addCriterion("si_sign >=", value, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiSignLessThan(String value) {
            addCriterion("si_sign <", value, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiSignLessThanOrEqualTo(String value) {
            addCriterion("si_sign <=", value, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiSignLike(String value) {
            addCriterion("si_sign like", value, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiSignNotLike(String value) {
            addCriterion("si_sign not like", value, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiSignIn(List<String> values) {
            addCriterion("si_sign in", values, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiSignNotIn(List<String> values) {
            addCriterion("si_sign not in", values, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiSignBetween(String value1, String value2) {
            addCriterion("si_sign between", value1, value2, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiSignNotBetween(String value1, String value2) {
            addCriterion("si_sign not between", value1, value2, "siSign");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentIsNull() {
            addCriterion("si_non_unemployment is null");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentIsNotNull() {
            addCriterion("si_non_unemployment is not null");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentEqualTo(String value) {
            addCriterion("si_non_unemployment =", value, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentNotEqualTo(String value) {
            addCriterion("si_non_unemployment <>", value, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentGreaterThan(String value) {
            addCriterion("si_non_unemployment >", value, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentGreaterThanOrEqualTo(String value) {
            addCriterion("si_non_unemployment >=", value, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentLessThan(String value) {
            addCriterion("si_non_unemployment <", value, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentLessThanOrEqualTo(String value) {
            addCriterion("si_non_unemployment <=", value, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentLike(String value) {
            addCriterion("si_non_unemployment like", value, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentNotLike(String value) {
            addCriterion("si_non_unemployment not like", value, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentIn(List<String> values) {
            addCriterion("si_non_unemployment in", values, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentNotIn(List<String> values) {
            addCriterion("si_non_unemployment not in", values, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentBetween(String value1, String value2) {
            addCriterion("si_non_unemployment between", value1, value2, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiNonUnemploymentNotBetween(String value1, String value2) {
            addCriterion("si_non_unemployment not between", value1, value2, "siNonUnemployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentIsNull() {
            addCriterion("si_flexible_employment is null");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentIsNotNull() {
            addCriterion("si_flexible_employment is not null");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentEqualTo(String value) {
            addCriterion("si_flexible_employment =", value, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentNotEqualTo(String value) {
            addCriterion("si_flexible_employment <>", value, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentGreaterThan(String value) {
            addCriterion("si_flexible_employment >", value, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentGreaterThanOrEqualTo(String value) {
            addCriterion("si_flexible_employment >=", value, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentLessThan(String value) {
            addCriterion("si_flexible_employment <", value, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentLessThanOrEqualTo(String value) {
            addCriterion("si_flexible_employment <=", value, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentLike(String value) {
            addCriterion("si_flexible_employment like", value, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentNotLike(String value) {
            addCriterion("si_flexible_employment not like", value, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentIn(List<String> values) {
            addCriterion("si_flexible_employment in", values, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentNotIn(List<String> values) {
            addCriterion("si_flexible_employment not in", values, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentBetween(String value1, String value2) {
            addCriterion("si_flexible_employment between", value1, value2, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiFlexibleEmploymentNotBetween(String value1, String value2) {
            addCriterion("si_flexible_employment not between", value1, value2, "siFlexibleEmployment");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartIsNull() {
            addCriterion("si_is_counterpart is null");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartIsNotNull() {
            addCriterion("si_is_counterpart is not null");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartEqualTo(Boolean value) {
            addCriterion("si_is_counterpart =", value, "siIsCounterpart");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartNotEqualTo(Boolean value) {
            addCriterion("si_is_counterpart <>", value, "siIsCounterpart");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartGreaterThan(Boolean value) {
            addCriterion("si_is_counterpart >", value, "siIsCounterpart");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartGreaterThanOrEqualTo(Boolean value) {
            addCriterion("si_is_counterpart >=", value, "siIsCounterpart");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartLessThan(Boolean value) {
            addCriterion("si_is_counterpart <", value, "siIsCounterpart");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartLessThanOrEqualTo(Boolean value) {
            addCriterion("si_is_counterpart <=", value, "siIsCounterpart");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartIn(List<Boolean> values) {
            addCriterion("si_is_counterpart in", values, "siIsCounterpart");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartNotIn(List<Boolean> values) {
            addCriterion("si_is_counterpart not in", values, "siIsCounterpart");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartBetween(Boolean value1, Boolean value2) {
            addCriterion("si_is_counterpart between", value1, value2, "siIsCounterpart");
            return (Criteria) this;
        }

        public Criteria andSiIsCounterpartNotBetween(Boolean value1, Boolean value2) {
            addCriterion("si_is_counterpart not between", value1, value2, "siIsCounterpart");
            return (Criteria) this;
        }

        public Criteria andSiTimeIsNull() {
            addCriterion("si_time is null");
            return (Criteria) this;
        }

        public Criteria andSiTimeIsNotNull() {
            addCriterion("si_time is not null");
            return (Criteria) this;
        }

        public Criteria andSiTimeEqualTo(String value) {
            addCriterion("si_time =", value, "siTime");
            return (Criteria) this;
        }

        public Criteria andSiTimeNotEqualTo(String value) {
            addCriterion("si_time <>", value, "siTime");
            return (Criteria) this;
        }

        public Criteria andSiTimeGreaterThan(String value) {
            addCriterion("si_time >", value, "siTime");
            return (Criteria) this;
        }

        public Criteria andSiTimeGreaterThanOrEqualTo(String value) {
            addCriterion("si_time >=", value, "siTime");
            return (Criteria) this;
        }

        public Criteria andSiTimeLessThan(String value) {
            addCriterion("si_time <", value, "siTime");
            return (Criteria) this;
        }

        public Criteria andSiTimeLessThanOrEqualTo(String value) {
            addCriterion("si_time <=", value, "siTime");
            return (Criteria) this;
        }

        public Criteria andSiTimeLike(String value) {
            addCriterion("si_time like", value, "siTime");
            return (Criteria) this;
        }

        public Criteria andSiTimeNotLike(String value) {
            addCriterion("si_time not like", value, "siTime");
            return (Criteria) this;
        }

        public Criteria andSiTimeIn(List<String> values) {
            addCriterion("si_time in", values, "siTime");
            return (Criteria) this;
        }

        public Criteria andSiTimeNotIn(List<String> values) {
            addCriterion("si_time not in", values, "siTime");
            return (Criteria) this;
        }

        public Criteria andSiTimeBetween(String value1, String value2) {
            addCriterion("si_time between", value1, value2, "siTime");
            return (Criteria) this;
        }

        public Criteria andSiTimeNotBetween(String value1, String value2) {
            addCriterion("si_time not between", value1, value2, "siTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}